package com.suben.goodsservice.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class SysUtils {

    /**
     * 获取唯一的正整数范围的数值
     * @return
     */
    public static int getUniqueNumber() {
        // int型的值取值范围为Integer.MIN_VALUE(-2147483648)～Integer.MAX_VALUE(2147483647)
        // hashCode可能会有负数产生。如何让负数变成正数，并且保证在整数的范围内不溢出呢？
        // 有一种牛逼的办法就是使用位与操作：强制把符号位去掉，保证结果只在正数区间
        // name.hashCode() & Integer.MAX_VALUE
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmssSS");
        String formDate =sdf.format(date);
        return formDate.substring(7).hashCode() & Integer.MAX_VALUE;
    }

    public static void main(String[] args) {
        System.out.println(getUniqueNumber());
    }
}
